# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# NOTE: This file is auto generated by the elixir code generator program.
# Do not edit this file manually.

defmodule GoogleApi.ProximityBeacon.V1beta1.Model.GetInfoForObservedBeaconsRequest do
  @moduledoc """
  Request for beacon and attachment information about beacons that
  a mobile client has encountered "in the wild".

  ## Attributes

  *   `namespacedTypes` (*type:* `list(String.t)`, *default:* `nil`) - Specifies what kind of attachments to include in the response.
      When given, the response will include only attachments of the given types.
      When empty, no attachments will be returned. Must be in the format
      <var>namespace/type</var>. Accepts `*` to specify all types in
      all namespaces owned by the client.
      Optional.
  *   `observations` (*type:* `list(GoogleApi.ProximityBeacon.V1beta1.Model.Observation.t)`, *default:* `nil`) - The beacons that the client has encountered.
      At least one must be given.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :namespacedTypes => list(String.t()),
          :observations => list(GoogleApi.ProximityBeacon.V1beta1.Model.Observation.t())
        }

  field(:namespacedTypes, type: :list)
  field(:observations, as: GoogleApi.ProximityBeacon.V1beta1.Model.Observation, type: :list)
end

defimpl Poison.Decoder,
  for: GoogleApi.ProximityBeacon.V1beta1.Model.GetInfoForObservedBeaconsRequest do
  def decode(value, options) do
    GoogleApi.ProximityBeacon.V1beta1.Model.GetInfoForObservedBeaconsRequest.decode(
      value,
      options
    )
  end
end

defimpl Poison.Encoder,
  for: GoogleApi.ProximityBeacon.V1beta1.Model.GetInfoForObservedBeaconsRequest do
  def encode(value, options) do
    GoogleApi.Gax.ModelBase.encode(value, options)
  end
end
